# 另一种日志模块的使用
# 导入日志模块
# 配置script终端命令行运行 manager 使用命令行
from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager
from info import create_app,db
from info.models import User

from config import *

app = create_app(DevelopmentConfig)
#终端命令行
manager = Manager(app)
# 数据库迁移的app名字和哪个数据库对象
Migrate(app,db)
# 给manager添加迁移命令"db"是在终端命令中文件名字后面第一个命令,其他命令存在migratecommand中
manager.add_command("db",MigrateCommand)

# 创建命令:
# python manager.py createsuperuser -n admin -p 123456

# 通过命令行来添加管理员
# -n 是缩写,-name是全称
@manager.option("-n","-name",dest = "name")
@manager.option("-p","-password",dest = "password")
def createsuperuser(name,password):
    """创建管理员用户"""
    # 上面的是备注
    if not all([name,password]):
        print("参数不全")
        return  #参数不全的话返回不继续

    #　创建模型
    user = User()
    # 管理员没有手机 数据库创建的字段是非空的所以必须进行传值
    user.mobile = name
    user.nick_name = name
    user.password = password
    user.is_admin = True
    try:
        db.session.add(user)
        db.session.commit()
        print("创建成功")
    except Exception as e:
        print(e)
        db.session.rollback()


if __name__ == '__main__':
    print(app.url_map)
    manager.run()
